From d16744d90052220de50a303a7d0afa2da2a1637d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20Valentin?= Date: Tue, 3 Jan 2023 19:23:41 +0100 Subject: [PATCH] ipq807x: Add ZyXEL NBG7815 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ZyXEL NBG7815 is a premium 802.11ax "tri"-band router/AP. Specifications: * CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz * RAM: 1 GB 2x Nanya NT5CC256M16ER-EK * Storage: * 8MB serial flash Winbond W25Q64DW * 4GB eMMC flash Kingston EMMC04G-M627 * Ethernet: * 4x1G RJ45 ports (QCA8074A) with 1x status LED per port * 1x2.5G RJ45 port (QCA8081) with 1x status LED * 1x10G RJ45 port (AQR113C) with 1x status LED * Switch: Qualcomm Atheros QCA8075 * WLAN: * 2.4GHz: Qualcomm QCN5024 4x4@40MHz 802.11b/g/n/ax 1147 Mbps PHY rate * 2x 5GHz: Qualcomm QCN5054 4x4 802.11a/b/g/n/ac/ax 2402 PHY rate * Bluetooth CSR8811 using HSUART, currently unsupported * USB: 1x USB3.0 Type-A port * LED-s currently not supported: * White * Dark Blu * Amber * Purple * Purple and dark blue * Red * Buttons: * 1x Soft reset * Power: 12V DC Jack Installation instructions: * Disconnect WAN * Reset device to factory defaults by pushing reset button 15 sec, LEDs should lit orange color. * After 5-10 minutes, when the LEDs turn constant dark blue, put your LAN cable and connect at address 192.168.123.1 by telnet on port 23 * Login with NBG7815 login: root password: nbg7815@2019 * cd /tmp/ApplicationData * wget -O openwrt-ipq807x-generic-zyxel_nbg7815-squashfs-sysupgrade.bin http://... * wget https://github.com/itorK/nbg7815_tools/blob/main/flash_to_openwrt.sh * run flash_to_openwrt.sh If you can't use wget, you can transfer the files via nc. See https://openwrt.org/inbox/toh/zyxel/nbg7815_armor_g5 for installation details. Bluetooth usage: * you need at least package bluez-utils, recommended bluez-daemon * run following commands to enable and start hciattach /dev/ttyMSM1 bcsp hciconfig hci0 up Many thanks to itorK for his work on this device: https://github.com/itorK/openwrt/tree/nbg7815 Reviewed-by: Robert Marko Signed-off-by: André Valentin --- board-zyxel_nbg7815.ipq8074 | Bin 0 -> 131176 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 board-zyxel_nbg7815.ipq8074 diff --git a/board-zyxel_nbg7815.ipq8074 b/board-zyxel_nbg7815.ipq8074 new file mode 100644 index 0000000000000000000000000000000000000000..3a1c88b76eabfe3ed262811cf8a674ccb737cee2 GIT binary patch literal 131176 zcmeHw33OCfdgiSKA+TB&qEy<+HJdid=j6WJ~K9McRQ2G(&_G`C+T*!Njgb8+e~JLNoVF{a&p3a->rI8uf(D& zBxDfx>3>!4fA{`(`R@P!_rJGZmDVgQpI%-3GCb7x4dzWqT&MFJHKuc`>~w@2KZyB2UKJcrZP zv1+GH#6(ne*A9I}3EjUt|M$B8)7^LdwM zE8Vt>v_M>-lzWIw7R$e28VR36WFObbcHnTY^AYL%$(v}XbJHWzTHVaiMqq;YJUm}; zLJM&Bz8dXD=<+lIBS0WZ{3xu$BPd6UY6Knz1SX24z{=fXnQ`dWty_n(OvjUdZ?#w~ z=5qzx{3H(M!X{31l?WKA;6J`5U!sH zk$yvns~4UDdewXN2~|(*dL22hI|U-|7K`;_a6$8 z@jW3@zJ>aa2{EM=@&%Ajfc#$#E${j-X#aOj^*0CW$L^fCQ zKgYnRUttW0feUR&`*;wJC1^t`+MrMdZlByoi z7N`f`yiYwa#t`xe<}qOV|4t19_ZKEx=mm}qramb612@JY{gdE0QobJYhApYcV+=Ad z1}X3-PV`|)6Xa(C!+7-JFNW@eF$O8$hWucErl7~vgOE=$>~WYr$&GQi&7SGgXwM2h z%>xWGU<;}ANAM?8I0iEy9|!sWIy44se>&t1pDM?|s9(XBhykXG$NJD12%$017|;o5 zJLT%IxEwUC!siJDYfqx7j!W;g4a_}}vnSbv!RsHE_0Kx$kB}YsVBM?e?>>jA z-ed38UYXtN*_~*Tz3^`9E2X`@-N~l541Cb>>Rj~AEPLtOZCB==@I}TtA&`+MeFjhE*f^G1wOI8|S11jZhLt$o*TU+C~N zH+^UX?tnl=ReeWS|Ap7DfB0)3fA$+cHa0jz?|$raW@DexgEe&q_8F70$L7GkLLAoQ zlNI)Maj1CM)c#jv^xuvBwRFfQVNby^M~K)bAphTn zZoiaA{qAo;9{V!Mn3EmY*NL43`F|K%J`ejkKH`5Zh#&f&!2V-TW3s{?XD;?cvazQT zfj{MAA+NA6#JG(|4$8^GIJ&S$mWFXiB93#>4?I3K`F{=Fj~w*Fi~VLd!Oi_EQi4$I$Yu-vb<7-$wn| zXHCRDZG1lJPk{XYQIKc-&;u9rC=Gg$SP%Ibke>qi|2?$4|7St`s7FW8e(aGtiXl%u zRA|4{L)sDc=F)qDdWe1E*l5Tr?(<4Lz&K_R2kh0R1Bav*w4(&&5Xb+i*bnFt?KuPE zAng%2N_$kWXCLb)j_^lmz#$PhNIi&0{r{v;KlGUP?1DW-v_A&&|9xnASwH1jzgZ6* zkXO+|>akf5p+_P76vojHd1*(3^?>bHk*6M+@oz)@^au2(3U(-+0bcHi!%XM_?eU+7 z#xaLDP>(nc^s5-hkUp!71IEzRGBrfclAlJmgjM z5cq}k@ILI=&;vP+gK>Oj810}we;@t;_9Xop`XT4n$>@i|{OThP#=HPM8m>Q(dO#du zPtq@Q9Esx;)UTiiKG>57{m;ZWroyi~ISxgTPlo*e8(I(Ky!r|1=e)#mXhQ!>AWwV# zM+JHM!=OC%C^WAyK2Y$7Av-ku`7r%aNDnX$cl4`@^FnBTr(fkb0*BE2uHsKvzoAF) z%M!<8;K=z=!JkMypg+PmNPBEY{hXf}-zdy$=5dtrtr*97kmoqu9C{o>{U03PD9$T> z*t6l+Ilm{>qy8e)&p1=1|As#{^nm`T6!P>(3jH_qK*sCPM;Wi99m&AaVZ<2<@op&2 zq+et|+JfVth@+ezSwH$A;|s{k`Hk_uLVO`{ggwi6oqA;0gQ_0=1mggIBI7K~3v#`{ zaZvSVkdK&`8qk0Gqj6q6->mB-|IjCRJ zADQ)l>qhsr5yW}GG31wt1LqY*zdShJmG;1OmtwpdTK92YGUmrpbsYR(MA~D79Vo=x zKE^j6qyNTw1NIn?I88Oap&iO~@4LVsdMwxN)B{C3kao!W=?@TJ4L3ds=>haP8{_DK zJ!ilkk}Hq95GH$bvm(LZ4Eg&vGA#ennv)i1Tx3ALc&VVb+6m;y^vXyrjC1Gl;qyEr7)ExK&`a^{{)6j!F*s~AzkOh6tgkMd8UrC@}WI2DTpa<|Lavucp zA$=@DI~4a-X^(OouK@@6Be@TS`Bim(jM!J^I5OVPhdlL2WnUcgTDI9A81n+hQDI(` zaW3@8h4x3R8x{96r9Y+~LXV|CXaoN2zp6jDmmMki!;l{QKJ?%d=mGkX*^MlG(9%Z9`?vHbROlc4LMXvjPKC~X@(VjWK2IXl_ zq4`x|UXywRzbfM+_|?$-%yCfI-(xv_sglv_t5j^v9f+ z6`q-lSa00Nyk_VDaqv+esRu@UKzmY+4`|QCfqn@%40nDC#cA(B58#iIX^+&SslY+S z9;rw0i=ofS=nrN=p7FMdJp6&2m!L=K(8Gv0Rl%O*x()b+_T}0B66gW(Q`i^I1%6VG z=@0r~2lNNSi4RQe5BXD$AN#K`FB*Cfp^vcV6zZcfFDS$ZQXh?R7(9+D{@}NRdT7Rh zeo^uBGWu2NPfYV`0_G(dZ!3J>CfjfLv-^k-@x2GK(VrQ5AoTHABVgzO_aUTThhLQIcly;~`eh&dK^Ej)@N20ph%exm;^PrtD6G3^ zkDQleoZ16<_(dn?SLOKRkKhkr&vHKw@^XHsU!4NKsNfIy`MnSJlm&luKkb+D>_6-= z6ZNOS9%Xz5zZ|15ujGD#`q6&bf6VVGh;N+qXNa?76#P2ltDH}O0p?XV{8<{}{KOd; zL&V9k3j4t!J@^^)fPRtjzA-;?esusxl{k^($bJw9$cOX*^LvcK{48-aj~VBg$C3M?e|&35UnAu|2YzV3 zT(>vDuVWnLx?Mp&@Ari8Lp~ewZp`Z;J%Ap@D(r_EdLTdV`xs?FpXBGp(C5%Tj)FeR zewfFRIAVT}zaJbij?$j!56}-4dyxJN_AK`wfP;)Pi6iP)iT7ok40-7fu%9XQnC+)O zQ`KXWKal>6@~|V7_DARe;w!G(opXZzKmq@}A3zV#{_Jb;iM<%ZX2k07=Z-k&fkON5 zs0XyCc9a3XE5mlra>$>-pGtoKJCgGn^;p3kxgRL^FX)e;hjKrc^D_4z z6!vfOeg}F0JNChjJ+Omx%qz*zBM0PT74Q$~!B4{TLMT4qdI9#JvhI>Ne1bC24j0;y z3LFw=14pzYMrD5fgP>pL{7idO2;wvBIJ(!o$A)gF? z>cDyiFo1k|6Xpfju><}%RzdzYJut_K)C2fsmHj~J573URYp`cS4a}qf}8}f!807upNnfo|0PNY2{&Xntgf}kF#jH7wIVfYi+lhh-HaSZ7J@RNFg z^-f3+6!b6$^FnC7X6OONQR1(FpNtO%>jC`HaP>gWuiOuWJ;={lpic>N(2gn41BLm; z&;u{@@iskBk;lBmeeFBSE8yVgIHLXBN4cN*Rqh8G{sewCv@fl=uPr~P3f6yLdSH%k zFt0GqmHS}vYW_s}1K<~m4>&Ir1?L3?JvRISpKs&7s{FjojDzZa-cQj6!=C96&<`j5 z0rW`8A5af44l=%gJ)|}S<4pP!1wE2}9rb(Qk1`=2nxDBJ_a{TI+r(pj73Gsok z50lakeWYJioFAoMhaQE-u`xJ~it7dL%jTed@4N6PW<8+1f^bN2;5fps4cDIexpxlsAH0~~jrE3e2K)*9k&+%D zKJcOb(C2mZC-94m*H!lOv>pUJ0`1B7>%bBA$n|e(J8(ptB=eS!XA^LM-HdrIQ}T82N=f)J-~V; zR%Jg8@l6i(0PS}n-cLjOLwca_`MuVIpdJ9n(B~{Cpa;hKopG8%yq@>_7)SV%kRD)u z=I0#B{@{m@$2ewVz2e3=rei-bX%_SddKjzfk3NMSybV2o9;daSe#pmTUW-xK$I*Ha z)C0~7uxA;k!7t1GK>7p3SuqOsL_Nqc`vdC1GxwBI5Rko3hOTUc^Bt*`gP9FoZq2G4*GS4{rNnz zKcF6%{eg-eFup*X8BxCxUntbC^&p@J`;N6An7bvXC23_Ck-qbl2g`Q(zmZ%UzPJCx z`tGu={*;d{r=RvwuDlDjpzCVX$#(boMX&wCpZSA_5NU#vS^xZS-jd2RUKm2-^; zOJ2xsOElGc^g`!}(p@@ab52vzv*CQN4z%``?)HAeT;9P`ok!;FKzXKq96Z0Sckb?-=Mqi0 zoIc&Szi4w-lhah*$ych6&f4kfbeQ^f_H4tUq8B|a&Wdoo$1c_!DctEP4%8V-`G>UJ*z!&O*r4#D{GGz?DB3%FzMChQ*AF7Z^~{= zG~sgQmAWGZJ3Q+Xs!X!|jr-?3pA~`M$qUe{9i9%SsUNSLY~EYgmEGW68kW5>(0qK( zu1NeYo@?!%yEVHlsWP1JD)N<}eTnAwoozi-@`5*FeBZd#**|x`Z!`D&jN|<2<^#pR zInjjQ*{coI(~VA(z8vnW+FQQW-#T@PAt}ULZ>~E%_keFRzY}U4hx*p+oxjappKQYK z#{$EAVB-lAPu5qkRC>DHG^pZ7JI?d`RzZM`MC zBlY?GiKacpz%R*!-`UIcM~ilPBl>&jXw}a7oBd76CYw2OvHHl&?V0UPlRgieY~54Z zm0h1?>hHzNO-G7%c-JSI^tq>Z{egM(&n7#+bh+V35%QVKd*wvip1ED#$o5@m=$W(4 z+u=0n_#6H0FVB5GJEFgbE_9wO-v@m$`M;|tT6dQ|=UZ#;@4&_8!=>AN>&!O&`k9vf z#hbI66HWa+a~bx#J<@*9_cre?dCpsFF7M3wwcUkVv)Y{|-~Ptgj)U{I_#(#b+Ux61 z&3oAwp)Ug`+xC`j%xOq6`Hg`~x8ryDbmPm#gZxJS#oEKOx4AnKOty8Uw|)2A4cWCx zCOz#xyY}GhEm^Hj(;Ri+$olr9a_J;Y(wVCgfc@Tg}8dI z^-$@HzBcn*cCxQ}clnF%I_KhWzMeB3$I4#HY&Oqjz1?+NXScgoIZfpqIa#)KW|ylW z!K9NHPA%I$2X>Tb(yP-XrtIp(1>t)8`)gm$-{fgD&lRW7alUl7 zOf}ij{)_D==kE1wTNTR`SB~& z#|vKaZ{~LojpK4()9zyEpV^N;-&=R6@CA3P(-ebTI8(pB==sR`?Tsr zFBXIl=IZ1J|3{rCaQtEIa!Pn-PE&V4OAN;`a2NhbU* zoT}ej)a8xvVMc!**7u_)s&>!XkWrIt(($v0YPaOKxGNG$!mS?Yuh~=3h~3Hbk{pf`ggK#^{%ol{)l+;&7StHrS0C;iSxqcz1rWjuXs~dgzokpT>1RG^}Z^z zPG0D1-dpsXr`9}go$0Q5A-~17GNCkF-lbDDy9=IkubpaY-<$ny`${)vH<)GLIN7{= z&IWItdEV;TSG}pc!@nkZez?5eW3@X9*1N0B^I-phs!j8ekH0%$92feV_7`q)*PCtT zWY3xx=5KJVOg7Dp=liQM?|bUax_0Gk;{nEI=9sYiP{*!$8~n9NCOhihQ`J@0=3kXG z*Qiy9Ge>K86n1#3ob$u?dUvnvoY$OFk!-@{@Tuy3<=b;2eC&Y(Z97V!yJp#Qr>b_B zah^8eck)d2f%2XH^~okX>N&iA@4St^`b4vz+}pHic75g&?k^k1$rIJP^EbHb%f4P2RLA__GxgS?9 zG-8f&x0&aF^S#wO$~U>H%yax3=UWcW*__pEj-R{x*Bzd_-M7x{>t63`lk;k#3Fjkw zYP)8w%~{Fc+cJ&=$2$*lU17%W^1-Ifg-xDkoyA5jAue64NBcZ&=C#_T-WvE~Pqkxy zIN!DN?FWmuc$>|B?XAm=Jw@BH+7nFv^yuNL?d6*?R-5(yt?tUMd2QJ%lT71r?Ogl8 z(igH@oaVR$?JH<oJ6i9TFV*!F zY;(6eO#Zq5`0DLtoBWN*rnX!@Q~xsbIih_%XVx7n+2QS&V#+sK?J~-_da;b+GUh;;$l@#*`A!|l1yvoQpNF{aNbM)PP2}mM*HS(a;-7@zc){I?&G{__G_ok)%VQY z;%b>{(p{t9qxF8}a_iB;ZJu`X+GXHa^UflUuPHV=-`BD)e}lipVe-2@r`H@T+nKXI z(d3&(t6fGpSFg67n6t~>Xycvg&Afgy z${nrus*VfSf9*GJ-5POuH-rD_aKr`a0yF{|0gZr0KqH_L&UTt?|=BwcRu^|-~7RkD=KU1o7+3PZUvA2Yv1|o$GEm)I)y zh;DI0oD&1$ns{G)Bt90Oi{BAH8T9utQoA8DLqv<)f0*c6XSqLFR^rX}n(1aE@>`;r zg!ae94{p3S+n3|d&3m}|keloG`+P<}yf<@0eF)(A2)-)V)g#!eucXOdZx$%q<926x z+#dHJ7QaFDfYY%5tOrK`eel>H(*JC7?fym1dY56@$afkL9(+8RK&Ka5$Z5 zILz0+G&IC!vrWJuQc}jURbyS(WMP-{%+|g)KFk{7G1hH=*y^jOZ|*{T_=9I2^W$L~ z7u}w*MSyYX*w(0P(+Fq;MuNZ-;=59O=B<1G)wK5yyz|j#Ke%_UnYTugZ(rX)-f$gA zjIcY{fzH4YcyDiS28-AF`oZrtmCF_x_a3q9&d!kxw3gKfjAI09hBzuK7cDZfn64}5 z&o3&v!~Ggl9$e3#KSZ8UE2p$HKYxh2BHFWTS-5TC>&l9vqHsCk`!zLpyN>K{2rH$2 zEn8MvIz*dCtsE76%g%)sMr?<2um>tg`byI=?%*ZOFvt=32F zA89RSTQS?mSLGkaaVVm@rV-ExXaqC@cR=9o@$kLl=Aq&kBmE9l>RXQi0$&quj=Ip zjD^5h2*4#U78sy=j)lNj2#kfmSO|=T7-B30#zJ5$1ja&OEW}V_@ltp&?lu;=U!R5! ze!XBOUJFWiou1{wYgVoV6jy48i$cLsn8sqtl9KqEk-=B><8Gr6xUXK0)f)4p)oQg# z)3C)%#MQmWBCM(-y0S*0-YC?DF|}e$aawWOtwW9Nh-$@ifYGQo8udaqtdr2+A#`Je z)rG{jD(IMN8cozU(~s9_MNi{3$(w@Lj6A6{xO(`G%&BZsb~0a|%H(TeB45*|@HJJY zraO53@EoIMJ7d`+8|)NDYJ+)NY_L;agp}(6Uf5u#HrS~Rc4~v2;h_h9U72m?h8%{#=FbwF7xH(lues4y(}p$xh%t*IVQu;`GRw{A5MWY z1?LH#Uhjjgo;EW0e6TeJN`HW=JgP;H1s21pV^lk*3mXvv!x=Z7_whntM2e+_M-_p` zOY?MZhl9YVDw-~AL5E!o-`jvpGE4?EE<5kCWzebM09Ti63 z95Vz)K7zUg6$Hj?Ku1`SN?*n@&j`Dt#YYi=u^e|@*Q15ND5{w*YJ>@j(!^v+)4{_k3&Zr+M~o*ey~ zi2hAP|0dpy#uAFTqzC7z{8{)V(cnClmio1rCxQ;zT$eX1!7(*2 zPr4XicCIra@Wqd^yXBGP2kRP7eo6ObbP-5N&G8s2~g{(Iziw{Q=!H%>dwJ@_sczt0slR^R8kJz5&QJ2u4Ok>3|XUlE7n#P`K+ zM&pdb**=!vBOATm-CmLnad_nS)NURc%kQe)-l7M4XH{M6neYF0WF4zo&-}`5_kJZZ z54p@7gxm7_?3vRu(gRo7xO!TCyZxzI-mHB24fki}`uksTsLtp3HRDQ^7mP?=kX^p8bvIlF~Bra-C%!?~JdfmHG2#7kKcAYEiMT zEG|AHeR7#I$(t2dmXzYljt{=3r1^6kWr5c~YM_J+*R-dSf+dV+yzaMefrvom^?qy6 zazx-k`z~F+M&MyXKwG{>KqH_L7%l=2n;+Bd(FiE14;H5tryXZB&N!Uy zQP_jUiTg3Q|LE?)Mqv*&3VX0o*n^G29&8l$V56`H8#PY%U>jc*!Z=+iKG!tg%xR9; z6i1pf&6(nGrMUPb(hvAZ_hn7XojI*&N=l+D*^}%^^`?3gUFp6|e=dJA{ec~&5yu0o z=C*<#bZqmum46$+`i4ee7zjLW_VOV5I}EsW)`tLr2cZLxTbU2RFzO}@1A)g)KOaPY zhXJ?F`Vb)SAar27miZ72S40!WE6%!K8iA1@5Md;m(FkY+Gy)m{jetf#Bk%wa7)h+6 zWiwReiGeL~mu z2Uhh1@Bik5#A-a%(LeD1cMPnq;<)zK+t**lLEZZFyEi`Jy|>DeocQ zH;sG9_c8CieeHTk_Qt25d_uh+_7CpQB1zI`p6@5ZNr zd~aWSJ0yGK(;GJo8_@3>0gZr0V7wvlq_8KAw?66qXaqC@8Uc-fMnEH=5zq)|1T+E~ z0gZr0KqH_L&!{U#$a-tk$}$Ri5bb;rWljyobFNiJ%Ol@Eej<|BoJK$+pb^jrXaqC@ z;|BqUu&1#%c2OwGmyrC|1is?|u7X4^Ml^~=lE}r0Vo_dAB6rD(oXbh%Tw<#zuOg9~ zC1!~7l_bAIhy>udoGGfr zf<+{zGv2ENCQ=D@BhMtR#_}&zvABH)4q=ymQ|6+{bz6s8%X4SNUo7Y?kC_Dtss&6DYRnIN)ov*$gL)k`%~1ncp*uS zm~FOLyp+VWzYtSIbsdRm|9~ zt&&8plxejja`Ty1Ln61#f`kSVxeDZ5Rzo6JgSISNMIu*EZUu>4GfG)jOCr|}Zh19{ zT&JZ$EMG+;*JY^_%NLP|=T_!iLt@%aa*Iji_E=_%61g)Ln^@6Ef_u3SqZ_qv9f_g z?)NNBVr3nP+!xGQLn61#S}ayBBa!=4rmZ27`wMbaByxXAu9igZSD}LqH6(IhTFS)A zdJ?&%D09h561jh(+#(XWe zVpS!HTpT>@stSXPr{7&gVp^WHOsr}ok(+I85v!Jx$Sq>uD@o*@2DfTCiQEE~xtc^y zfLpziMDAH@t*BfM@XxxCXxFdT2{T3MDF{PTR|fC>*SV`$o&>_HkOmf{S;}7t4ZX( zWX>uQxpVNz6)Q;e6E~T*n8dVy2Dfk-iQJo*8*A2*$Str{iJC?dxqm}_HOolk1o~IA zl*InUV8*MdAu-JXuV1r@L@tRrQBa^QY0SBh#55PU+NC6NUfVoTTTUVuhqUs=ByzU#Js~s0AXy)+C&^7LjOcg?DHZ$+p!Z z1+hh{tx=@e){1mngUGOL6`8ib6t0QeggfeQgva&^k!3q9yc4d9Z2Jk3J>idpZ^F+- z&V+W6J9!<>4xHd~`k4AJ)WL=aH>Pr zTOqI9DB#_xe;vFx({b2Qi4_XgnevJ)2wbtHfh)E&aK*1l2Cm{mSIB1#+=HyV3iNHJ z;}0CyP_GpdyrS%3Tveh+(ZMT6=qf&Rl@YpPTLKbnLEtJWluFbB_t;V+)wp7-0{2jx zyke`O#rA{_C);9Nv3-Gitiwn(uEG**b0C#%-kz`ur36xW6~31mOf_m_YM?e=rG#Vy z<$aM*8BFC>par~Q-?k_GCwY&x#fM7qg=*tfpp<_P=8JcBI0NMcu82$Eise1${2@|_ zY2b>r1+JJca7EoP?pcFZ9Jj!|Kq~Vm%hWbAPR~CVJDtOGtyH!L*n|X_fGFa>wF~5Bf zKOw~PGe8UejDx&YSSFfz8~D+hCgLpk$LPWqTM(=uz}q8uyO`)m4Q61vxqWe%fze+> zTrhnC^5;GixJBMBq9Wv3-t;+v3Ly_PzLuC_lrQ!0wXE8oo9V>9PP^6s)AkJ>CE z)Lo1x`T2oFypl(W!P3CX_D^^+*c{1Q#gtG1GbRw939+8wof#4@`xH;GNXpyA6DirH zfhvM{Oe+tt!Sd~~Uk~ze_5fam29MSNzj!l0LD;6|%?wmX{3i%|!c((~r388ApKB`L zE+!{u1`A;SY+_Q9(VzL?Ehxb_=Gy}Ga~;BiJW}n}*uWj~7LgN3#Op1{TSZKfaf7@~ z#H5987zz6QkwhTu$sWn(>qct?Gy-FeKmtA!<55~#I;y7=pEo_qN22(*N4fbUZhI2; z!db|)TVL&8O?&^qJ0E@agRiy~({4TL?bz2hFk+qfDho&!%|`VWi^XcKsPF2(_MOju zY}~xZ`_`k^?~xizN|F2dL+4|TRPm);hE9%&jf;0AI1`hSQ&Q8?GcsLnPnI{^m*daP zyM<%o5J#Xkhj3vnQ-qZbKK2szqFr?18HPQg8_xus!>9e%#QWkS@v-<^{0=^SkNo=> zsojv7fxU-6zU`sbYn|o(WLZgWuHWzTdA-?^yf<@^-x69m2ih^Vui4pNP?pE-%5u9s z?m?^&gKi9BN1i^mz16iniU_2M%7u?&yLFp20vZ90fJQ(gpb^jrXaqC@8Uc-fMnEH= z5zq)|1T+E~0gZr0KqH_L&